home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / awt / ScrollPane.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  7.3 KB  |  339 lines

  1. package java.awt;
  2.  
  3. import java.awt.event.MouseWheelEvent;
  4. import java.awt.peer.ScrollPanePeer;
  5. import java.io.IOException;
  6. import java.io.ObjectInputStream;
  7. import java.io.ObjectOutputStream;
  8. import javax.accessibility.Accessible;
  9. import javax.accessibility.AccessibleContext;
  10. import sun.awt.ScrollPaneWheelScroller;
  11. import sun.awt.SunToolkit;
  12.  
  13. public class ScrollPane extends Container implements Accessible {
  14.    public static final int SCROLLBARS_AS_NEEDED = 0;
  15.    public static final int SCROLLBARS_ALWAYS = 1;
  16.    public static final int SCROLLBARS_NEVER = 2;
  17.    private int scrollbarDisplayPolicy;
  18.    private ScrollPaneAdjustable vAdjustable;
  19.    private ScrollPaneAdjustable hAdjustable;
  20.    private static final String base = "scrollpane";
  21.    private static int nameCounter;
  22.    private static final boolean defaultWheelScroll = true;
  23.    private boolean wheelScrollingEnabled;
  24.    private static final long serialVersionUID = 7956609840827222915L;
  25.  
  26.    private static native void initIDs();
  27.  
  28.    public ScrollPane() throws HeadlessException {
  29.       this(0);
  30.    }
  31.  
  32.    public ScrollPane(int var1) throws HeadlessException {
  33.       this.wheelScrollingEnabled = true;
  34.       GraphicsEnvironment.checkHeadless();
  35.       this.layoutMgr = null;
  36.       this.width = 100;
  37.       this.height = 100;
  38.       switch (var1) {
  39.          case 0:
  40.          case 1:
  41.          case 2:
  42.             this.scrollbarDisplayPolicy = var1;
  43.             this.vAdjustable = new ScrollPaneAdjustable(this, new PeerFixer(this, this), 1);
  44.             this.hAdjustable = new ScrollPaneAdjustable(this, new PeerFixer(this, this), 0);
  45.             this.setWheelScrollingEnabled(true);
  46.             return;
  47.          default:
  48.             throw new IllegalArgumentException("illegal scrollbar display policy");
  49.       }
  50.    }
  51.  
  52.    String constructComponentName() {
  53.       synchronized(this.getClass()) {
  54.          return "scrollpane" + nameCounter++;
  55.       }
  56.    }
  57.  
  58.    private void addToPanel(Component var1, Object var2, int var3) {
  59.       Panel var4 = new Panel();
  60.       var4.setLayout(new BorderLayout());
  61.       var4.add(var1);
  62.       super.addImpl(var4, var2, var3);
  63.       this.validate();
  64.    }
  65.  
  66.    protected final void addImpl(Component var1, Object var2, int var3) {
  67.       synchronized(this.getTreeLock()) {
  68.          if (this.getComponentCount() > 0) {
  69.             this.remove(0);
  70.          }
  71.  
  72.          if (var3 > 0) {
  73.             throw new IllegalArgumentException("position greater than 0");
  74.          } else {
  75.             if (!SunToolkit.isLightweightOrUnknown(var1)) {
  76.                super.addImpl(var1, var2, var3);
  77.             } else {
  78.                this.addToPanel(var1, var2, var3);
  79.             }
  80.  
  81.          }
  82.       }
  83.    }
  84.  
  85.    public int getScrollbarDisplayPolicy() {
  86.       return this.scrollbarDisplayPolicy;
  87.    }
  88.  
  89.    public Dimension getViewportSize() {
  90.       Insets var1 = this.getInsets();
  91.       return new Dimension(this.width - var1.right - var1.left, this.height - var1.top - var1.bottom);
  92.    }
  93.  
  94.    public int getHScrollbarHeight() {
  95.       int var1 = 0;
  96.       if (this.scrollbarDisplayPolicy != 2) {
  97.          ScrollPanePeer var2 = (ScrollPanePeer)this.peer;
  98.          if (var2 != null) {
  99.             var1 = var2.getHScrollbarHeight();
  100.          }
  101.       }
  102.  
  103.       return var1;
  104.    }
  105.  
  106.    public int getVScrollbarWidth() {
  107.       int var1 = 0;
  108.       if (this.scrollbarDisplayPolicy != 2) {
  109.          ScrollPanePeer var2 = (ScrollPanePeer)this.peer;
  110.          if (var2 != null) {
  111.             var1 = var2.getVScrollbarWidth();
  112.          }
  113.       }
  114.  
  115.       return var1;
  116.    }
  117.  
  118.    public Adjustable getVAdjustable() {
  119.       return this.vAdjustable;
  120.    }
  121.  
  122.    public Adjustable getHAdjustable() {
  123.       return this.hAdjustable;
  124.    }
  125.  
  126.    public void setScrollPosition(int var1, int var2) {
  127.       synchronized(this.getTreeLock()) {
  128.          if (this.ncomponents <= 0) {
  129.             throw new NullPointerException("child is null");
  130.          } else {
  131.             this.hAdjustable.setValue(var1);
  132.             this.vAdjustable.setValue(var2);
  133.          }
  134.       }
  135.    }
  136.  
  137.    public void setScrollPosition(Point var1) {
  138.       this.setScrollPosition(var1.x, var1.y);
  139.    }
  140.  
  141.    public Point getScrollPosition() {
  142.       if (this.ncomponents <= 0) {
  143.          throw new NullPointerException("child is null");
  144.       } else {
  145.          return new Point(this.hAdjustable.getValue(), this.vAdjustable.getValue());
  146.       }
  147.    }
  148.  
  149.    public final void setLayout(LayoutManager var1) {
  150.       throw new AWTError("ScrollPane controls layout");
  151.    }
  152.  
  153.    public void doLayout() {
  154.       this.layout();
  155.    }
  156.  
  157.    Dimension calculateChildSize() {
  158.       Dimension var1 = this.getSize();
  159.       Insets var2 = this.getInsets();
  160.       int var3 = var1.width - var2.left * 2;
  161.       int var4 = var1.height - var2.top * 2;
  162.       Component var7 = this.getComponent(0);
  163.       Dimension var8 = new Dimension(var7.getPreferredSize());
  164.       boolean var5;
  165.       boolean var6;
  166.       if (this.scrollbarDisplayPolicy == 0) {
  167.          var5 = var8.height > var4;
  168.          var6 = var8.width > var3;
  169.       } else if (this.scrollbarDisplayPolicy == 1) {
  170.          var6 = true;
  171.          var5 = true;
  172.       } else {
  173.          var6 = false;
  174.          var5 = false;
  175.       }
  176.  
  177.       int var9 = this.getVScrollbarWidth();
  178.       int var10 = this.getHScrollbarHeight();
  179.       if (var5) {
  180.          var3 -= var9;
  181.       }
  182.  
  183.       if (var6) {
  184.          var4 -= var10;
  185.       }
  186.  
  187.       if (var8.width < var3) {
  188.          var8.width = var3;
  189.       }
  190.  
  191.       if (var8.height < var4) {
  192.          var8.height = var4;
  193.       }
  194.  
  195.       return var8;
  196.    }
  197.  
  198.    /** @deprecated */
  199.    @Deprecated
  200.    public void layout() {
  201.       if (this.ncomponents > 0) {
  202.          Component var1 = this.getComponent(0);
  203.          Point var2 = this.getScrollPosition();
  204.          Dimension var3 = this.calculateChildSize();
  205.          Dimension var4 = this.getViewportSize();
  206.          Insets var5 = this.getInsets();
  207.          var1.reshape(var5.left - var2.x, var5.top - var2.y, var3.width, var3.height);
  208.          ScrollPanePeer var6 = (ScrollPanePeer)this.peer;
  209.          if (var6 != null) {
  210.             var6.childResized(var3.width, var3.height);
  211.          }
  212.  
  213.          var4 = this.getViewportSize();
  214.          this.hAdjustable.setSpan(0, var3.width, var4.width);
  215.          this.vAdjustable.setSpan(0, var3.height, var4.height);
  216.       }
  217.  
  218.    }
  219.  
  220.    public void printComponents(Graphics var1) {
  221.       if (this.ncomponents > 0) {
  222.          Component var2 = this.component[0];
  223.          Point var3 = var2.getLocation();
  224.          Dimension var4 = this.getViewportSize();
  225.          Insets var5 = this.getInsets();
  226.          Graphics var6 = var1.create();
  227.  
  228.          try {
  229.             var6.clipRect(var5.left, var5.top, var4.width, var4.height);
  230.             var6.translate(var3.x, var3.y);
  231.             var2.printAll(var6);
  232.          } finally {
  233.             var6.dispose();
  234.          }
  235.       }
  236.  
  237.    }
  238.  
  239.    public void addNotify() {
  240.       synchronized(this.getTreeLock()) {
  241.          int var2 = 0;
  242.          int var3 = 0;
  243.          if (this.getComponentCount() > 0) {
  244.             var2 = this.vAdjustable.getValue();
  245.             var3 = this.hAdjustable.getValue();
  246.             this.vAdjustable.setValue(0);
  247.             this.hAdjustable.setValue(0);
  248.          }
  249.  
  250.          if (this.peer == null) {
  251.             this.peer = this.getToolkit().createScrollPane(this);
  252.          }
  253.  
  254.          super.addNotify();
  255.          if (this.getComponentCount() > 0) {
  256.             this.vAdjustable.setValue(var2);
  257.             this.hAdjustable.setValue(var3);
  258.          }
  259.  
  260.       }
  261.    }
  262.  
  263.    public String paramString() {
  264.       String var1;
  265.       switch (this.scrollbarDisplayPolicy) {
  266.          case 0:
  267.             var1 = "as-needed";
  268.             break;
  269.          case 1:
  270.             var1 = "always";
  271.             break;
  272.          case 2:
  273.             var1 = "never";
  274.             break;
  275.          default:
  276.             var1 = "invalid display policy";
  277.       }
  278.  
  279.       Point var2 = this.ncomponents > 0 ? this.getScrollPosition() : new Point(0, 0);
  280.       Insets var3 = this.getInsets();
  281.       return super.paramString() + ",ScrollPosition=(" + var2.x + "," + var2.y + ")" + ",Insets=(" + var3.top + "," + var3.left + "," + var3.bottom + "," + var3.right + ")" + ",ScrollbarDisplayPolicy=" + var1 + ",wheelScrollingEnabled=" + this.isWheelScrollingEnabled();
  282.    }
  283.  
  284.    void autoProcessMouseWheel(MouseWheelEvent var1) {
  285.       this.processMouseWheelEvent(var1);
  286.    }
  287.  
  288.    protected void processMouseWheelEvent(MouseWheelEvent var1) {
  289.       if (this.isWheelScrollingEnabled()) {
  290.          ScrollPaneWheelScroller.handleWheelScrolling(this, var1);
  291.          var1.consume();
  292.       }
  293.  
  294.       super.processMouseWheelEvent(var1);
  295.    }
  296.  
  297.    protected boolean eventTypeEnabled(int var1) {
  298.       return var1 == 507 && this.isWheelScrollingEnabled() ? true : super.eventTypeEnabled(var1);
  299.    }
  300.  
  301.    public void setWheelScrollingEnabled(boolean var1) {
  302.       this.wheelScrollingEnabled = var1;
  303.    }
  304.  
  305.    public boolean isWheelScrollingEnabled() {
  306.       return this.wheelScrollingEnabled;
  307.    }
  308.  
  309.    private void writeObject(ObjectOutputStream var1) throws IOException {
  310.       var1.defaultWriteObject();
  311.    }
  312.  
  313.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException, HeadlessException {
  314.       GraphicsEnvironment.checkHeadless();
  315.       ObjectInputStream.GetField var2 = var1.readFields();
  316.       this.scrollbarDisplayPolicy = var2.get("scrollbarDisplayPolicy", 0);
  317.       this.hAdjustable = (ScrollPaneAdjustable)var2.get("hAdjustable", (Object)null);
  318.       this.vAdjustable = (ScrollPaneAdjustable)var2.get("vAdjustable", (Object)null);
  319.       this.wheelScrollingEnabled = var2.get("wheelScrollingEnabled", true);
  320.    }
  321.  
  322.    public AccessibleContext getAccessibleContext() {
  323.       if (this.accessibleContext == null) {
  324.          this.accessibleContext = new AccessibleAWTScrollPane(this);
  325.       }
  326.  
  327.       return this.accessibleContext;
  328.    }
  329.  
  330.    static {
  331.       Toolkit.loadLibraries();
  332.       if (!GraphicsEnvironment.isHeadless()) {
  333.          initIDs();
  334.       }
  335.  
  336.       nameCounter = 0;
  337.    }
  338. }
  339.